﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace InnovTech.DynamicData
{
    public interface IDynamicData
    {
        ICollection<IDynamicObject> Objects { get; }

        //Identifier of a dynamic data
        string DataName { get; }
    }

    public interface IDynamicObject
    {
        Type ObjectType { get; }
        string ObjectName { get; }
        IDictionary<string, IDynamicObjectMember> Members { get; }
        IEnumerable<string> MemberNames { get; }
    }

    public interface IDynamicObjectMember
    {
        string MemberPath { get; }
        Type MemberType { get; }
        string MemberName { get; }
        object MemberValue { get; }
        IDynamicObject HostObject { get; }
    }
}
